package 代理设计模式.动态代理;

import javax.swing.*;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class CarFactory {
    public static Object  getProxy(Object obj){
        return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(),new Handler());

    }

    static class  Handler implements InvocationHandler{

        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            //proxy 是代理对象
            //method 是对象的方法
            // args 是参数信息
            return  null;
        }
    }


    public static void main(String[] args) {
//        Car car=new XMCar("小米汽车");
//        Car proxyCar=(Car)getProxy(car);
//        proxyCar.run();
        Car car=new BCCar("奔驰汽车");
        Car proxyCar=(Car)getProxy(car);
        proxyCar.run();
    }
}
